/* ----------------------------------------------------------------------
*
* Copyright (C) 2025 XiaoFei. All rights reserved.
*
* $file:		XiaoZhi_MQ135.h
* $Date:        31-January-2025
* $Revision: 	V1
* $Project: 	XiaoFei BSP Library
* $Taobao:      https://item.taobao.com/item.htm?abbucket=17&id=797855735547
*
* -------------------------------------------------------------------- */

#ifndef __XiaoZhi_MQ135_H
#define __XiaoZhi_MQ135_H

#define MQ135_Use_DO

#if defined(MQ135_Use_ADC2)||defined(MQ135_Use_ADC1)
    #define MQ135_RCC_AO				RCC_APB2Periph_GPIOA
    #define MQ135_GPIO_AO				GPIOA
    #define MQ135_PIN_AO				GPIO_Pin_1
    #define MQ135_ADC_Channel			ADC_Channel_1
#endif

#ifdef MQ135_Use_DO
    #define MQ135_RCC_DO				RCC_APB2Periph_GPIOA
    #define MQ135_GPIO_DO				GPIOA
    #define MQ135_PIN_DO				GPIO_Pin_1
    #define MQ135_Trigger				Bit_RESET
#endif

/* 
* @function: 	MQ135_Init
*/
void MQ135_Init(void);

#if defined(MQ135_Use_ADC2)||defined(MQ135_Use_ADC1)
/* 
* @function: 	MQ135_GetValue
* @return:		The ADC value from MQ-135. This value will be mapped from 0 to 3.3 volts to 0 to 4096.
*/
unsigned int MQ135_GetValue(void);
#endif

#if defined(MQ135_Use_ADC2)||defined(MQ135_Use_ADC1)
/* 
* @function: 	MQ135_GetVoltage
* @return:		The Voltage value from MQ-135. This value need to be limited to 0 to 3.3 volts.
*/
float MQ135_GetVoltage(void);
#endif

#ifdef MQ135_Use_DO
/* 
* @function: 	MQ135_IsTrigger
* @return:		Return 0x01 if the MQ-135 is trigger.
*/
unsigned char MQ135_IsTrigger(void);
#endif

#endif


